
f3 = Math.sin( f13 / Math.max(.000000001,Math.abs(f4)) );

f7 -= f6;
if(1 < f7){
	f7 -= 2;
}else if(f7 < -1){
	f7 += 2;
}

f8 *= f12;








{
	double radius = Math.sqrt(f16*f16 + f10*f10);
	double angle = Math.asin(f10/Math.max(.000000001,radius));
	if(f16 < 0){ angle += Math.PI; }
	double speed = 1 / Math.max(.000000001, Math.abs(f0));
	angle += f15*speed;
	f16 = Math.max( -1., Math.min(radius*Math.cos(angle), 1.) );
	f10 = Math.max( -1., Math.min(radius*Math.sin(angle), 1.) );
}

f14 = Math.min(f13,f16);

f1 += f4;
if(1 < f1){
	f1 -= 2;
}else if(f1 < -1){
	f1 += 2;
}



if(0 < f6){
	f7 *= 1 - f6;
	f7 += 0 < f14 ? f5 : f0;
}else{ 
	if(0 < f14){
		f5 *= 1 - (-f6);
		f5 += (-f6)*f7;
	}else{
		f0 *= 1 - (-f6);
		f0 += (-f6)*f7;
	}
}

f6 = Math.max(f14,f11);


if(0 < f2 && f15 < 0){ f15 -= 2*f2*f15; }

f9 = Math.sin( f5 / Math.max(.000000001,Math.abs(f15)) );


if(0 < f11 && f12 < 0){ f12 -= 2*f11*f12; }



if(0 < f5){
	f15 *= 1 - f5;
	f15 += 0 < f8 ? f9 : f16;
}else{ 
	if(0 < f8){
		f9 *= 1 - (-f5);
		f9 += (-f5)*f15;
	}else{
		f16 *= 1 - (-f5);
		f16 += (-f5)*f15;
	}
}

f16 = Math.sin( f8 / Math.max(.000000001,Math.abs(f3)) );

{
	double tempFollow5Var = f0;
	f0 = f2;
	f2 = f4;
	f4 = f13;
	f13 = f11;
	f11 = tempFollow5Var;
}